import JSEncrypt from 'jsencrypt/bin/jsencrypt.min.js';
// 密钥对生成 http://web.chacuo.net/netrsakeypair

const publicKey = import.meta.env.VITE_APP_RSA_PUBLIC_KEY;

// 前端不建议存放私钥 不建议解密数据 因为都是透明的意义不大
const privateKey = import.meta.env.VITE_APP_RSA_PRIVATE_KEY;


/**
 * 使用RSA公钥加密函数
 * @param {string} txt - 需要加密的文本内容
 * @returns {string | boolean} - 返回加密后的字符串，加密失败则返回false
 */
export const encrypt = (txt: string) => {
  const encryptor = new JSEncrypt(); // 创建JSEncrypt实例，用于加密操作
  encryptor.setPublicKey(publicKey); // 设置公钥，用于加密数据
  return encryptor.encrypt(txt); // 对数据进行加密
};

/**
 * 使用RSA算法解密文本
 * @param {string} txt - 需要解密的文本
 * @returns {string} 解密后的文本
 */
export const decrypt = (txt: string) => {
  const encryptor = new JSEncrypt(); // 创建JSEncrypt实例，用于RSA加密解密操作
  encryptor.setPrivateKey(privateKey); // 设置私钥，用于解密操作
  return encryptor.decrypt(txt); // 对数据进行解密
};
